#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QEvent>       //专门处理事件的头文件
#include <QTextEdit>
#include <QTimerEvent>
#include <QPushButton>
#include <QCloseEvent>



QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;

public slots:       //槽函数   写到这里
    void buttonClickedSlot();           //点击按钮槽函数；
    void timerSlot();                           //定时器处理函数
public:
    QTextEdit* textEdit;
    int time_id1;                       //定时器1 id
    int time_id2;                       //定时器2 id
    QTimer* timer;                  //定时器对象
    QPushButton* Button;

public:
    bool event (QEvent *event); //相应所有事件

    void mousePressEvent(QMouseEvent* ev);          //响应鼠标按下事件
    void mouseReleaseEvent(QMouseEvent* ev);         //响应鼠标弹起事件
    void mouseMoveEvent(QMouseEvent* ev);                //响应鼠标移动事件
    void mouseDoubleClickEvent(QMouseEvent *ev);     //响应鼠标双击事件
    void wheelEvent(QWheelEvent* ev);                               //响应鼠标滚轮滚动事件

    void keyPressEvent(QKeyEvent *ev);                      //响应键盘按下事件
    void keyReleaseEvent(QKeyEvent *ev );                    //响应键盘弹起事件

    void timerEvent(QTimerEvent* ev);                           //定时器消息响应

    void resizeEvent(QResizeEvent *ev);                         //重新调整大小响应事件
    void showEvent(QShowEvent* ev);                             //显示事件
    void hideEvent(QHideEvent *ev);                                 //隐藏事件

    void closeEvent(QCloseEvent* ev);                              //关闭按钮响应事件


};

#endif // WIDGET_H
